# 1定义一个装饰器(装饰器的本质是闭包)
def check(fn):
    def inner():
        print("请先登陆")
        fn()

    return inner



# 2使用装饰器装饰函数（增加一个登陆功能）
# 解释器遇到@check 会立即执行 comment = check(comment)
@check
def comment():
    print("发表评论")


comment()
"""
小结：
装饰器本质上就是⼀个闭包函数，它可以对已有函数进⾏额外的功能扩展。
装饰器的语法格式:
    # 装饰器
    def decorator(fn): # fn:被装饰的⽬标函数.
        def inner():
            '''执⾏函数之前'''
            fn() # 执⾏被装饰的⽬标函数
            '''执⾏函数之后'''
        return inner
        
装饰器的语法糖⽤法: @装饰器名称，同样可以完成对已有函数的装饰操作。    
"""
